namespace Digitalmes.Application.Services;

/// <summary>
/// 物料条码校验服务。
/// </summary>
public interface IMaterialMatchService : IApplicationService
{
    /// <summary>
    /// 校验条码规则。
    /// </summary>
    /// <param name="barcode">条码</param>
    /// <param name="rules">规则集合</param>
    /// <returns>规则集合为空时返回 true。</returns>
    Task<bool> MatchAsync(string barcode, params IEnumerable<string> rules);

    /// <summary>
    /// 获取匹配规则方法。
    /// </summary>
    /// <returns></returns>
    Task<Func<string, IEnumerable<string>, bool>> GetMatchFuncAsync();
}
